# MASTER CLAUDE SONNET PROMPT
# COMPLETE HOTEL + RESTAURANT POS / BILLING / MANAGEMENT SYSTEM
# BUILD ALL PHASES — PRODUCTION READY

You are Claude Sonnet acting as a senior software architect, senior Node.js developer, senior React developer, database architect, UI/UX designer, QA engineer, and DevOps engineer.

Your task is to BUILD a complete production-ready Hotel + Restaurant POS, Billing, Inventory, Kitchen, Hotel Room Management and Restaurant Management System.

This is NOT a demo.
This is NOT a static UI.
This is NOT a prototype.
This is NOT a tutorial.

You must actually create the application files, install dependencies, configure the project, create the database, create APIs, create frontend, create admin/POS interfaces, implement all business logic, test everything, and fix errors.

The system should be suitable for:

- Restaurants
- Hotels
- Cafes
- Resorts
- Bars where legally applicable
- QSR
- Fine dining
- Cloud kitchens
- Multi-outlet restaurants
- Hotels with restaurant billing
- Hotel + restaurant combined businesses

The application must have a professional POS experience inspired by modern restaurant management systems, but DO NOT copy any company's branding, logo, proprietary UI, text, assets, or source code.

Create an ORIGINAL professional design.

============================================================
1. ABSOLUTE TECHNOLOGY REQUIREMENTS
============================================================

FRONTEND:

Use ONLY:

- React.js
- React DOM
- JavaScript
- JSX
- HTML5
- Pure CSS3
- CSS Variables
- React Router
- Axios
- Webpack
- Babel

IMPORTANT:

DO NOT USE VITE.

The React frontend must be manually configured using Webpack + Babel.

BACKEND:

- Node.js
- Express.js
- JavaScript
- REST API

DATABASE:

- MySQL
- phpMyAdmin compatible
- Sequelize OR mysql2
- Prefer Sequelize if it gives cleaner migrations/relations

AUTHENTICATION:

- JWT
- bcrypt
- HTTP-only refresh cookies where practical

FILE UPLOAD:

- Multer
- Sharp

EMAIL:

- Nodemailer

SECURITY:

- Helmet
- CORS
- express-rate-limit
- express-validator
- bcrypt
- JWT

LOGGING:

- Winston

============================================================
2. STRICTLY PROHIBITED
============================================================

DO NOT USE:

- Next.js
- Vite
- Tailwind CSS
- Bootstrap
- Material UI
- MUI
- Ant Design
- Chakra UI
- Semantic UI
- Bulma
- Foundation
- DaisyUI
- Flowbite
- shadcn/ui
- Radix UI
- Styled Components
- Emotion
- Vue
- Angular
- Svelte
- Nuxt
- Firebase
- Supabase
- MongoDB
- PostgreSQL

DO NOT use any CSS/UI framework.

The UI must be:

React + JSX + HTML5 + Pure CSS3.

No Tailwind classes.

No Bootstrap classes.

No utility CSS framework.

============================================================
3. DESIGN REQUIREMENTS
============================================================

Create a premium, modern, professional POS design.

PRIMARY COLOR:

Sky Blue.

Recommended primary:

#38BDF8

Supporting colors:

#0EA5E9
#0284C7
#0369A1

WHITE:

#FFFFFF

Background:

#F5FAFE

Light blue surface:

#EAF7FF

Text:

#0F172A

Secondary text:

#475569

Border:

#DCEAF3

Success:

#16A34A

Warning:

#F59E0B

Danger:

#DC2626

Dark mode can use deeper blue accents but the DEFAULT design must be:

SKY BLUE + WHITE.

The interface should feel:

- Clean
- Professional
- Fast
- Modern
- Premium
- Enterprise-ready
- Easy for cashiers
- Easy for waiters
- Easy for managers
- Easy for hotel reception
- Easy for kitchen staff

Avoid:

- Excessive gradients
- Excessive glassmorphism
- Huge animations
- Overly rounded childish cards
- Too many colors
- Clutter
- Tiny text
- Poor contrast

Use:

- White cards
- Sky-blue primary actions
- Light blue backgrounds
- Clear typography
- Compact POS controls
- Professional tables
- Clear status badges
- Good spacing
- Strong visual hierarchy

============================================================
4. DESIGN SYSTEM
============================================================

Create:

frontend/src/styles/

variables.css
reset.css
global.css
layout.css
typography.css
buttons.css
forms.css
tables.css
cards.css
modal.css
animations.css
responsive.css
utilities.css

Use CSS variables.

Example:

:root {
    --primary: #38BDF8;
    --primary-dark: #0284C7;
    --primary-light: #E0F5FF;

    --background: #F5FAFE;
    --surface: #FFFFFF;
    --surface-hover: #F0F9FF;

    --text: #0F172A;
    --text-secondary: #475569;
    --text-muted: #64748B;

    --border: #DCEAF3;

    --success: #16A34A;
    --warning: #F59E0B;
    --danger: #DC2626;

    --radius-sm: 6px;
    --radius-md: 10px;
    --radius-lg: 14px;

    --shadow-sm: 0 2px 8px rgba(14, 165, 233, 0.06);
    --shadow-md: 0 8px 24px rgba(14, 165, 233, 0.10);

    --container-width: 1400px;

    --transition: 0.2s ease;
}

Create dark mode using CSS variables but keep sky-blue branding.

============================================================
5. FRONTEND BUILD SYSTEM
============================================================

NO VITE.

Configure Webpack manually.

Required:

- webpack
- webpack-cli
- webpack-dev-server
- babel-loader
- @babel/core
- @babel/preset-env
- @babel/preset-react
- html-webpack-plugin
- css-loader
- style-loader
- mini-css-extract-plugin
- css-minimizer-webpack-plugin
- terser-webpack-plugin

Create:

frontend/webpack.config.js

frontend/babel.config.js

frontend/public/index.html

Use React 18+ compatible configuration.

Development:

npm run dev

Production:

npm run build

Production output:

frontend/dist/

Use:

- code splitting
- lazy routes
- production optimization
- asset hashing
- CSS extraction in production
- source maps in development

============================================================
6. PROJECT STRUCTURE
============================================================

Create:

hotel-pos/
│
├── backend/
│   ├── src/
│   │   ├── config/
│   │   ├── controllers/
│   │   ├── middleware/
│   │   ├── models/
│   │   ├── routes/
│   │   ├── services/
│   │   ├── validators/
│   │   ├── utils/
│   │   ├── jobs/
│   │   ├── migrations/
│   │   ├── seeders/
│   │   ├── uploads/
│   │   ├── app.js
│   │   └── server.js
│   │
│   ├── .env.example
│   ├── package.json
│   └── README.md
│
├── frontend/
│   ├── public/
│   │   ├── index.html
│   │   ├── favicon.ico
│   │   └── robots.txt
│   │
│   ├── src/
│   │   ├── components/
│   │   ├── pages/
│   │   ├── layouts/
│   │   ├── hooks/
│   │   ├── context/
│   │   ├── services/
│   │   ├── utils/
│   │   ├── validators/
│   │   ├── routes/
│   │   ├── styles/
│   │   ├── assets/
│   │   ├── App.jsx
│   │   └── main.jsx
│   │
│   ├── webpack.config.js
│   ├── babel.config.js
│   ├── .env.example
│   ├── package.json
│   └── README.md
│
├── database/
│   ├── schema.sql
│   ├── seed.sql
│   └── README.md
│
├── uploads/
├── docs/
│
├── package.json
└── README.md

============================================================
7. MAIN APPLICATION MODULES
============================================================

Build ALL of these modules:

1. Login / Authentication
2. Dashboard
3. POS Billing
4. Restaurant POS
5. Hotel Front Desk
6. Room Management
7. Table Management
8. Floor Management
9. Menu Management
10. Categories
11. Menu Items
12. Variations
13. Add-ons
14. Modifiers
15. Combos
16. KOT
17. Kitchen Display System
18. Kitchen Stations
19. Inventory
20. Recipes
21. Purchase
22. Suppliers
23. Stock Transfers
24. Wastage
25. Customers
26. Guest Management
27. Reservations
28. Hotel Check-in
29. Hotel Check-out
30. Room Charges
31. Restaurant Charges
32. Hotel Folio
33. Payments
34. GST / Tax
35. Discounts
36. Coupons
37. Loyalty
38. Employees
39. Roles
40. Permissions
41. Expenses
42. Cash Management
43. Day End
44. Reports
45. Multi Outlet
46. Central Kitchen
47. Online Orders
48. QR Ordering
49. Media
50. Settings
51. Notifications
52. Audit Logs
53. Backup / Restore utilities
54. Integration settings

============================================================
8. DATABASE
============================================================

Database name:

hotel_pos

Create:

database/schema.sql

database/seed.sql

Must be directly importable through phpMyAdmin.

Use:

- INT UNSIGNED
- BIGINT where appropriate
- DECIMAL for money
- DATETIME
- DATE
- BOOLEAN/TINYINT
- ENUM only where truly appropriate
- indexes
- foreign keys
- unique constraints
- created_at
- updated_at

Money must NEVER use floating point.

Use:

DECIMAL(12,2)

for financial values.

============================================================
9. MULTI-TENANT ARCHITECTURE
============================================================

Design the system so it can later operate as SaaS.

Main structure:

Company
    ↓
Outlet
    ↓
Users
    ↓
POS
    ↓
Orders
    ↓
Payments

Every major business record should support:

company_id

and where applicable:

outlet_id

This allows:

Restaurant A
    ├── Outlet 1
    ├── Outlet 2
    └── Outlet 3

Restaurant B
    ├── Outlet 1
    └── Outlet 2

Users must only access authorized company/outlet data.

============================================================
10. CORE DATABASE TABLES
============================================================

Create at minimum:

companies

outlets

users

roles

permissions

role_permissions

user_outlets

customers

customer_addresses

customer_loyalty

suppliers

supplier_contacts

menu_categories

menu_items

menu_item_variations

menu_item_addons

menu_item_modifiers

menu_combos

menu_combo_items

taxes

discounts

coupons

floors

tables

table_status_history

orders

order_items

order_item_addons

order_item_modifiers

order_taxes

order_discounts

payments

payment_transactions

refunds

kot

kot_items

kitchen_stations

kitchen_orders

recipes

recipe_items

inventory_items

inventory_units

inventory_stocks

inventory_transactions

stock_adjustments

stock_transfers

stock_transfer_items

wastage

purchase_orders

purchase_order_items

purchase_invoices

purchase_invoice_items

purchase_returns

purchase_return_items

expenses

cash_registers

cash_transactions

day_end_closings

hotel_room_types

hotel_rooms

hotel_room_amenities

hotel_room_reservations

hotel_guests

hotel_checkins

hotel_checkouts

hotel_folios

hotel_folio_items

hotel_room_charges

restaurant_room_charges

hotel_rate_plans

hotel_room_blocks

restaurant_reservations

online_orders

online_order_items

qr_menus

qr_menu_tables

loyalty_transactions

employees

attendance

notifications

audit_logs

settings

social_integrations

printers

printer_routes

media

backup_logs

============================================================
11. COMPANY TABLE
============================================================

Fields:

id
name
legal_name
logo
email
phone
address
city
state
country
pincode
gstin
pan
currency
timezone
status
created_at
updated_at

============================================================
12. OUTLETS
============================================================

Fields:

id
company_id
name
code
type
address
phone
email
gstin
invoice_prefix
kot_prefix
timezone
status
created_at
updated_at

Types:

restaurant
hotel
resort
cafe
qsr
other

============================================================
13. USERS / ROLES / PERMISSIONS
============================================================

Users:

id
company_id
name
email
phone
password
role_id
avatar
status
last_login_at
created_at
updated_at

Roles:

Super Admin
Company Admin
Outlet Manager
Cashier
Waiter
Captain
Kitchen
Inventory Manager
Purchase Manager
Receptionist
Accountant
Auditor

Permissions must be granular:

dashboard.view

pos.view

pos.create

pos.edit

pos.delete

pos.discount

pos.refund

orders.view

orders.create

orders.edit

orders.cancel

payments.view

payments.create

inventory.view

inventory.create

inventory.adjust

purchase.view

purchase.create

hotel.view

hotel.checkin

hotel.checkout

reports.view

settings.view

settings.edit

etc.

============================================================
14. POS BILLING MODULE
============================================================

This is the most important module.

Create a fast POS interface.

Route:

/pos

Layout:

LEFT / MAIN AREA:
- Category tabs
- Search
- Menu items
- Item cards
- Item image
- Price
- Availability

RIGHT:
- Current order
- Table
- Customer
- Items
- Quantity
- Add-ons
- Modifiers
- Notes
- Discount
- Tax
- Subtotal
- Grand total
- Payment button

The POS must be optimized for mouse, touch screen and keyboard.

============================================================
15. POS ORDER TYPES
============================================================

Support:

Dine In

Takeaway

Delivery

Pickup

Room Service

Counter Sale

Online Order

Select order type before billing.

============================================================
16. DINE-IN POS
============================================================

Workflow:

Floor
↓
Table
↓
Customer
↓
Menu
↓
Items
↓
Modifiers
↓
KOT
↓
Kitchen
↓
Bill
↓
Payment
↓
Close

Allow:

- Table selection
- Table transfer
- Merge tables
- Split bill
- Split items
- Move order
- Hold order
- Resume order
- Cancel item
- Cancel order
- Reprint KOT
- Reprint bill

============================================================
17. ORDER CART
============================================================

Each cart item must support:

item_id

name

quantity

unit_price

discount

tax

addons

modifiers

special_instruction

notes

subtotal

tax_amount

discount_amount

total

Allow:

+

-

quantity input

delete

edit modifiers

add notes

============================================================
18. SPLIT BILL
============================================================

Support:

Split equally

Split by item

Split by amount

Split by customer

Example:

Bill:

₹4,000

Customer A:

₹1,500

Customer B:

₹2,500

Each split bill must be independently payable.

============================================================
19. PAYMENT SYSTEM
============================================================

Support:

Cash

Card

UPI

Bank Transfer

Wallet

Online Payment

Room Charge

Credit

Other

Support split payments.

Example:

Total ₹5,000

Cash ₹1,000

UPI ₹2,000

Card ₹2,000

Payment must be stored transactionally.

============================================================
20. BILLING
============================================================

Generate professional invoices.

Include:

Restaurant/Hotel logo

Business name

Address

GSTIN

Invoice number

Date/time

Table

Customer

Cashier

Items

Qty

Rate

Discount

Tax

CGST

SGST

IGST if applicable

Grand total

Payment mode

Amount paid

Balance

Footer

Terms

Create print-friendly invoice.

Support:

A4

Thermal 80mm

Thermal 58mm

============================================================
21. GST / TAX
============================================================

Create configurable taxes.

Tax fields:

name

rate

type

CGST

SGST

IGST

CESS if required

inclusive/exclusive

Do not hard-code tax percentages.

Taxes must be configurable from settings.

Tax calculation must use decimal-safe arithmetic.

============================================================
22. KOT MODULE
============================================================

When order is submitted:

POS
↓
KOT
↓
Kitchen Station

KOT must contain:

KOT number

Order number

Table

Order type

Items

Quantity

Modifiers

Notes

Station

Date/time

Waiter

Priority

Status

Statuses:

New

Accepted

Preparing

Ready

Served

Cancelled

============================================================
23. KITCHEN DISPLAY SYSTEM
============================================================

Create:

/kitchen

Kitchen screen.

Columns:

NEW

PREPARING

READY

COMPLETED

Each card:

KOT #

Table

Items

Time elapsed

Priority

Notes

Buttons:

Accept

Start

Ready

Complete

Cancel

Use WebSocket / Socket.IO for real-time updates.

POS order:

↓
Socket.IO

Kitchen instantly receives KOT.

============================================================
24. KITCHEN STATIONS
============================================================

Create stations:

Main Kitchen

Tandoor

Chinese

Bakery

Bar

Beverage

Dessert

etc.

Menu categories/items can route to specific stations.

Example:

Pizza → Bakery

Paneer → Main Kitchen

Tea → Beverage

============================================================
25. TABLE MANAGEMENT
============================================================

Create:

/tables

Features:

- Floors
- Areas
- Tables
- Capacity
- Status
- Reservation
- Occupied
- Available
- Cleaning
- Billing

Table statuses:

Available

Occupied

Reserved

Cleaning

Blocked

Show table layout visually.

Allow admin to configure:

- Table number
- Shape
- Capacity
- Position
- Floor
- Section

============================================================
26. MENU MANAGEMENT
============================================================

Menu categories.

Items.

Each item:

name

SKU

barcode

description

image

price

cost

tax

category

station

food_type

availability

online_available

room_service_available

status

sort_order

Food types:

Vegetarian

Non-Vegetarian

Vegan

Egg

Other

============================================================
27. VARIATIONS
============================================================

Example:

Coffee:

Small ₹80

Medium ₹120

Large ₹150

Create variation management.

============================================================
28. ADDONS
============================================================

Example:

Burger:

Extra Cheese ₹40

Extra Patty ₹80

Fries ₹60

Support minimum/max selection.

============================================================
29. MODIFIERS
============================================================

Examples:

Spicy

Less spicy

No onion

No garlic

Extra sauce

Special instructions

============================================================
30. COMBOS
============================================================

Example:

Burger Combo:

Burger

Fries

Drink

Support combo pricing.

============================================================
31. INVENTORY
============================================================

Inventory module:

Inventory Items

Units

Opening Stock

Purchases

Consumption

Wastage

Transfers

Adjustments

Low Stock

Stock Valuation

Inventory Reports

Each item:

name

SKU

unit

purchase_price

selling_price

reorder_level

current_stock

minimum_stock

maximum_stock

supplier

status

============================================================
32. RECIPE MANAGEMENT
============================================================

Extremely important.

Example:

Paneer Butter Masala

Paneer 250g

Tomato 150g

Butter 30g

Cream 50ml

Spices 10g

When one item is sold:

automatically deduct ingredients.

Support:

Recipe

Recipe items

Quantity

Unit

Cost

Wastage percentage

Yield

Food cost

Gross margin

============================================================
33. PURCHASE
============================================================

Purchase workflow:

Supplier

↓

Purchase Order

↓

Goods Received

↓

Purchase Invoice

↓

Inventory

Support:

Purchase Orders

Purchase Invoices

Purchase Returns

Supplier Payments

Outstanding

Purchase reports

============================================================
34. SUPPLIER MANAGEMENT
============================================================

Fields:

Name

Company

GSTIN

Phone

Email

Address

Payment terms

Bank details

Notes

Status

============================================================
35. STOCK TRANSFER
============================================================

Support:

Outlet → Outlet

Warehouse → Outlet

Central Kitchen → Outlet

Outlet → Central Kitchen

Create transfer workflow:

Draft

Requested

Approved

Dispatched

Received

Cancelled

============================================================
36. WASTAGE
============================================================

Track:

Item

Quantity

Unit

Reason

Cost

Date

Employee

Outlet

Reason examples:

Expired

Damaged

Overproduction

Spillage

Wrong preparation

Other

============================================================
37. CUSTOMER CRM
============================================================

Customer:

Name

Mobile

Email

Address

Birthday

Anniversary

GSTIN

Notes

Total visits

Total orders

Total spending

Last visit

Favorite items

Loyalty points

Create customer profile.

============================================================
38. LOYALTY
============================================================

Support:

Points earning

Points redemption

Rewards

Membership tiers

Transactions

Example:

₹100 spent

→ 10 points

Store all loyalty transactions.

Do not hard-code rules.

============================================================
39. COUPONS
============================================================

Support:

Percentage discount

Fixed discount

Minimum order

Maximum discount

Date validity

Usage limit

Customer restriction

Outlet restriction

Order type restriction

============================================================
40. RESTAURANT RESERVATIONS
============================================================

Create reservation module.

Fields:

Customer

Date

Time

Guests

Table

Special request

Status

Source

Statuses:

Pending

Confirmed

Arrived

Seated

Completed

Cancelled

No Show

============================================================
41. HOTEL MODULE
============================================================

Hotel dashboard:

Occupancy

Available rooms

Occupied rooms

Reserved rooms

Check-ins today

Check-outs today

Revenue

Pending payments

Housekeeping status

============================================================
42. ROOM TYPES
============================================================

Examples:

Single

Double

Deluxe

Suite

Family

Executive

Premium

Create configurable room types.

Fields:

name

description

capacity

adult_capacity

child_capacity

base_price

tax

amenities

image

status

============================================================
43. ROOMS
============================================================

Fields:

room_number

room_type_id

floor

status

price

capacity

notes

housekeeping_status

maintenance_status

status:

Available

Occupied

Reserved

Cleaning

Maintenance

Blocked

============================================================
44. HOTEL RESERVATIONS
============================================================

Reservation:

Guest

Room

Room type

Check-in date

Check-out date

Adults

Children

Rate

Discount

Tax

Advance

Payment

Status

Source

Special requests

Statuses:

Pending

Confirmed

Checked In

Checked Out

Cancelled

No Show

============================================================
45. HOTEL GUESTS
============================================================

Guest profile:

Name

Mobile

Email

DOB

Address

City

State

Country

ID type

ID number

ID document

Nationality

Company

GSTIN

Notes

Store documents securely.

Do not expose sensitive documents publicly.

============================================================
46. HOTEL CHECK-IN
============================================================

Workflow:

Reservation

↓

Guest verification

↓

Room allocation

↓

ID/document verification

↓

Advance payment

↓

Check-in

↓

Room occupied

↓

Folio active

Create professional reception UI.

============================================================
47. HOTEL FOLIO
============================================================

Folio is extremely important.

A guest folio contains:

Room charge

Restaurant charge

Room service

Laundry

Minibar

Extra bed

Parking

Other services

Discount

Tax

Payments

Balance

Example:

Room:

₹5,000

Restaurant:

₹1,500

Laundry:

₹500

Total:

₹7,000

Paid:

₹4,000

Balance:

₹3,000

============================================================
48. POST RESTAURANT BILL TO ROOM
============================================================

Restaurant POS must support:

PAY BY ROOM

Workflow:

Guest provides room number.

System finds active checked-in guest.

Restaurant bill:

₹1,500

Select:

Charge to Room

System posts:

hotel_folio_item

restaurant_room_charge

Guest folio becomes:

Previous balance

+

Restaurant ₹1,500

New balance

This must be transactional.

============================================================
49. ROOM SERVICE
============================================================

Order type:

Room Service

Select:

Room

Guest

Menu

Items

Modifiers

KOT

Kitchen

Delivery to room

Charge to folio

Support room service status:

New

Preparing

Ready

Delivered

Charged

============================================================
50. HOTEL CHECKOUT
============================================================

Checkout screen:

Guest

Room

Stay

Room charges

Restaurant charges

Room service

Other charges

Discounts

Taxes

Payments

Balance

Final total

Actions:

Print invoice

Email invoice

Collect payment

Checkout

After checkout:

Room → Cleaning

Guest stay → Completed

Folio → Closed

============================================================
51. HOUSEKEEPING
============================================================

Create housekeeping module.

Statuses:

Clean

Dirty

Cleaning

Inspected

Maintenance

Blocked

Allow housekeeping staff to update room status.

Dashboard:

Clean rooms

Dirty rooms

Cleaning rooms

Inspection pending

Maintenance

============================================================
52. ROOM CHARGES
============================================================

Support:

Room rent

Extra bed

Early check-in

Late checkout

Room service

Laundry

Minibar

Parking

Other

All configurable.

============================================================
53. CASH REGISTER
============================================================

Cashier opens register.

Opening cash:

₹10,000

During day:

Cash sales

Cash expenses

Cash refunds

Cash deposits

Cash withdrawals

At closing:

Expected cash

Actual cash

Difference

Create cash register session.

============================================================
54. DAY END
============================================================

Day-end closing must calculate:

Gross sales

Discounts

Tax

Net sales

Cash sales

Card sales

UPI sales

Online sales

Room charges

Refunds

Expenses

Expected cash

Actual cash

Difference

KOT count

Cancelled orders

Orders count

Generate day-end report.

============================================================
55. EXPENSE MANAGEMENT
============================================================

Categories:

Rent

Electricity

Salary

Transport

Maintenance

Marketing

Supplies

Miscellaneous

Fields:

Amount

Category

Date

Description

Payment mode

Employee

Outlet

Attachment

============================================================
56. EMPLOYEE MANAGEMENT
============================================================

Employee:

Name

Employee code

Phone

Email

Role

Department

Outlet

Joining date

Salary if required

Status

============================================================
57. ATTENDANCE
============================================================

Support:

Check-in

Check-out

Break

Late

Absent

Overtime

Date

Employee

Outlet

============================================================
58. REPORTS
============================================================

Create a comprehensive reports module.

Dashboard reports:

Sales Today

Sales This Week

Sales This Month

Orders Today

Average Order Value

Occupancy

Room Revenue

Restaurant Revenue

Inventory Value

Outstanding

============================================================
59. SALES REPORTS
============================================================

Reports:

Daily Sales

Monthly Sales

Yearly Sales

Hourly Sales

Item Sales

Category Sales

Order Type Sales

Payment Mode Sales

Outlet Sales

Employee Sales

Table Sales

Room Sales

============================================================
60. PRODUCT REPORTS
============================================================

Top selling items.

Slow moving items.

Most profitable items.

Category performance.

Item quantity sold.

Item revenue.

Item discount.

Item tax.

============================================================
61. INVENTORY REPORTS
============================================================

Stock Summary

Low Stock

Stock Movement

Purchase

Consumption

Wastage

Stock Transfer

Stock Valuation

Food Cost

Recipe Cost

============================================================
62. HOTEL REPORTS
============================================================

Occupancy

Room Revenue

ADR

RevPAR

Check-ins

Check-outs

Cancellations

No Shows

Room Type Performance

Guest Revenue

Outstanding Folios

============================================================
63. KOT REPORTS
============================================================

KOT count

Average preparation time

Cancelled KOT

Station performance

Delayed KOT

Kitchen productivity

============================================================
64. CUSTOMER REPORTS
============================================================

New customers

Returning customers

Top customers

Customer spending

Visits

Loyalty

Coupons

============================================================
65. PURCHASE REPORTS
============================================================

Supplier-wise purchase

Item-wise purchase

Purchase trend

Purchase returns

Outstanding supplier payments

============================================================
66. TAX REPORTS
============================================================

Tax collected:

CGST

SGST

IGST

Other applicable taxes

Sales tax summary

Taxable value

Tax amount

Invoice count

Make tax reporting configurable.

============================================================
67. MULTI-OUTLET
============================================================

Company can have multiple outlets.

Head office dashboard:

Total sales

Outlet sales

Restaurant revenue

Hotel revenue

Inventory

Expenses

Profitability

Occupancy

Allow switching outlet from header.

User permissions must determine accessible outlets.

============================================================
68. CENTRAL KITCHEN
============================================================

Support:

Production

Raw materials

Recipes

Production orders

Outlet requests

Stock dispatch

Stock receiving

Transfers

============================================================
69. ONLINE ORDERS
============================================================

Create generic online order integration architecture.

Sources:

Website

QR

Mobile App

Aggregator

Other

Do not fake external integrations.

Create integration interface/service architecture so APIs can be added later.

Online order statuses:

Received

Accepted

Preparing

Ready

Out for Delivery

Completed

Cancelled

============================================================
70. QR MENU
============================================================

Generate QR codes for:

Restaurant

Outlet

Floor

Table

Room

QR menu can display:

Categories

Items

Prices

Availability

Images

Add-ons

Modifiers

Customers can place orders.

For actual payment/order integration, create API architecture.

============================================================
71. PRINTER MANAGEMENT
============================================================

Create printer settings:

Bill printer

KOT printer

Kitchen printer

Receipt printer

Label printer

Printer routing:

Category

Station

Order type

Outlet

Support print formats:

58mm

80mm

A4

Create print-friendly CSS.

============================================================
72. RECEIPT PRINTING
============================================================

Create:

Invoice component

ThermalReceipt component

KOT component

RoomFolioInvoice component

DayEndReport component

Use browser print.

Create:

@media print

CSS.

Hide:

Sidebar

Navigation

Buttons

Non-printable UI

============================================================
73. NOTIFICATIONS
============================================================

Create notifications:

New order

KOT ready

Low stock

Reservation

Check-in

Check-out

Payment

Outstanding

System

============================================================
74. AUDIT LOG
============================================================

Track:

Login

Logout

Create

Update

Delete

Refund

Discount

Price change

Stock adjustment

Payment

Checkout

Settings change

Each log:

user

action

module

record_id

old_data

new_data

IP

user_agent

timestamp

============================================================
75. MEDIA / UPLOAD
============================================================

Use:

Multer + Sharp.

Support:

JPG

JPEG

PNG

WEBP

PDF

SVG only where safe.

Generate optimized images.

Folders:

uploads/company

uploads/outlets

uploads/menu

uploads/projects

uploads/hotel

uploads/guests

uploads/media

uploads/documents

Validate:

MIME

extension

size

dimensions

Never trust filenames.

============================================================
76. SECURITY
============================================================

Implement:

Helmet

CORS

Rate limiting

JWT

bcrypt

Input validation

SQL injection prevention

XSS protection

File validation

File size limits

Secure cookies

Role authorization

Company authorization

Outlet authorization

Never expose:

passwords

JWT secrets

database credentials

private guest documents

private ID documents

SMTP credentials

============================================================
77. AUTHORIZATION
============================================================

Every protected API must verify:

1. Authentication
2. Company access
3. Outlet access
4. Role permission

Example:

User A belongs to Company 1.

User A cannot access Company 2.

User A can only access assigned outlets.

Super Admin may access all.

============================================================
78. API ARCHITECTURE
============================================================

Base:

/api

Create:

/api/auth

/api/companies

/api/outlets

/api/users

/api/roles

/api/permissions

/api/dashboard

/api/pos

/api/orders

/api/payments

/api/tables

/api/floors

/api/menu

/api/categories

/api/items

/api/kot

/api/kitchen

/api/inventory

/api/recipes

/api/purchases

/api/suppliers

/api/customers

/api/loyalty

/api/reservations

/api/hotel

/api/rooms

/api/guests

/api/checkins

/api/checkouts

/api/folios

/api/housekeeping

/api/expenses

/api/employees

/api/attendance

/api/reports

/api/online-orders

/api/qr

/api/printers

/api/settings

/api/media

/api/notifications

/api/audit-logs

============================================================
79. API RESPONSE FORMAT
============================================================

Success:

{
    "success": true,
    "message": "Operation successful",
    "data": {}
}

List:

{
    "success": true,
    "message": "Records fetched",
    "data": [],
    "pagination": {
        "page": 1,
        "limit": 20,
        "total": 100,
        "totalPages": 5
    }
}

Error:

{
    "success": false,
    "message": "Something went wrong",
    "errors": []
}

============================================================
80. POS FRONTEND
============================================================

Create:

/pos

The POS must NOT look like a normal admin table.

It must feel like a real cashier application.

Recommended:

Top:

Outlet selector
Date
Cashier
Register
Current order type

Left:

Categories

Center:

Menu items

Right:

Cart

Bottom:

Hold

KOT

Discount

Split

Payment

Print

New Order

Make buttons large enough for touch screens.

============================================================
81. POS KEYBOARD SHORTCUTS
============================================================

Implement where practical:

F1 = New Order

F2 = Search Item

F3 = Customer

F4 = Hold

F5 = Payment

F6 = Print

Esc = Close Modal

Ctrl + K = Search

Document shortcuts.

Allow configurable shortcuts later.

============================================================
82. ADMIN LAYOUT
============================================================

Create:

Sidebar

Topbar

Outlet selector

User menu

Notifications

Breadcrumb

Main content

Responsive mobile menu.

Sidebar sections:

Dashboard

POS

Restaurant

Hotel

Kitchen

Inventory

Purchase

CRM

Reports

Employees

Settings

============================================================
83. DASHBOARD UI
============================================================

Sky-blue professional dashboard.

Cards:

Today's Sales

Orders

Average Order

Restaurant Revenue

Room Revenue

Occupancy

Pending Payments

Low Stock

Charts:

Sales trend

Payment distribution

Top products

Occupancy

Use Recharts only if necessary.

Do not create fake numbers.

Use database values.

============================================================
84. SKELETON LOADING
============================================================

This is mandatory.

Install:

react-loading-skeleton

Use:

Skeleton

SkeletonTheme if useful.

Create:

DashboardSkeleton

POSSkeleton

TableSkeleton

MenuSkeleton

OrderSkeleton

KOTSkeleton

InventorySkeleton

PurchaseSkeleton

CustomerSkeleton

HotelDashboardSkeleton

RoomSkeleton

ReservationSkeleton

ReportSkeleton

FormSkeleton

MediaSkeleton

Every API-driven section must have:

Loading

Success

Empty

Error

states.

Never show blank content while loading.

============================================================
85. FRONTEND SERVICES
============================================================

Create:

services/api.js

authService.js

dashboardService.js

posService.js

orderService.js

paymentService.js

menuService.js

tableService.js

kotService.js

kitchenService.js

inventoryService.js

purchaseService.js

customerService.js

hotelService.js

roomService.js

guestService.js

folioService.js

reservationService.js

reportService.js

settingsService.js

mediaService.js

notificationService.js

============================================================
86. REACT CONTEXTS
============================================================

Create:

AuthContext

CompanyContext

OutletContext

ThemeContext

NotificationContext

CartContext where useful

Do not overuse Context.

============================================================
87. REUSABLE COMPONENTS
============================================================

Create:

Button

Input

Select

Textarea

Checkbox

Radio

Modal

ConfirmModal

Toast

Dropdown

Tabs

Badge

Card

DataTable

Pagination

SearchBox

DatePicker

TimePicker

ImageUploader

FileUploader

Skeleton

EmptyState

ErrorState

LoadingOverlay

Sidebar

Topbar

Breadcrumb

StatCard

ChartCard

Invoice

Receipt

KOTTicket

RoomCard

TableCard

MenuItemCard

OrderCart

PaymentModal

SplitBillModal

CustomerSelector

============================================================
88. HOTEL FRONT DESK UI
============================================================

Create:

/hotel

Dashboard

/hotel/reservations

/hotel/check-in

/hotel/check-out

/hotel/rooms

/hotel/guests

/hotel/folios

/hotel/housekeeping

Make reception workflow fast.

Room grid should visually show:

Available

Occupied

Reserved

Cleaning

Maintenance

============================================================
89. ROOM GRID
============================================================

Example:

ROOM 101
Deluxe
AVAILABLE
₹4,500

ROOM 102
Deluxe
OCCUPIED
Guest Name

ROOM 103
Suite
CLEANING

Use sky-blue status colors while maintaining accessibility.

============================================================
90. TABLE GRID
============================================================

Example:

TABLE 01
4 Seats
AVAILABLE

TABLE 02
6 Seats
OCCUPIED

TABLE 03
4 Seats
RESERVED

Click table → open order.

============================================================
91. MOBILE RESPONSIVENESS
============================================================

Support:

320px

360px

375px

390px

414px

480px

768px

1024px

1280px

1440px

1920px

POS should remain usable on tablets.

Hotel reception should work on desktop/tablet.

Admin must be responsive.

============================================================
92. DARK MODE
============================================================

Support:

Light

Dark

System

Default:

Light

Sky blue + white.

Store preference in localStorage.

No theme library.

============================================================
93. ACCESSIBILITY
============================================================

Use:

Semantic HTML

Keyboard navigation

ARIA labels

Focus states

Accessible modals

Accessible forms

Proper labels

Alt text

Color contrast

Do not rely only on color for status.

============================================================
94. PERFORMANCE
============================================================

Implement:

React.lazy

Suspense

Webpack code splitting

Image lazy loading

WebP

Responsive images

Proper width/height

Database indexes

Pagination

Debounced searches

Optimized SQL

Avoid unnecessary renders

============================================================
95. SEARCH
============================================================

Global search should support:

Orders

Customers

Menu

Products

Rooms

Guests

Invoices

Reservations

Use debouncing.

============================================================
96. PAGINATION
============================================================

All large datasets must use server-side pagination.

Example:

?page=1

&limit=20

&search=

&sort=created_at

&order=DESC

============================================================
97. FINANCIAL SAFETY
============================================================

Financial operations must be transactional.

Examples:

Payment

Refund

Checkout

Stock deduction

Room charge

Restaurant room charge

Purchase

Stock transfer

Use database transactions.

Never allow partial financial operations.

Money:

DECIMAL(12,2)

Never JavaScript floating-point arithmetic for authoritative financial calculations.

Create server-side calculation logic.

============================================================
98. ORDER NUMBERING
============================================================

Create configurable prefixes.

Examples:

INV-2026-000001

KOT-2026-000001

RES-2026-000001

ROOM-2026-000001

Allow outlet-specific prefixes.

Numbers must be generated safely under concurrency.

============================================================
99. DISCOUNTS
============================================================

Support:

Percentage

Fixed amount

Item-level

Order-level

Customer-specific

Coupon

Manager-approved discount

Permission-based discount limits.

For example:

Cashier max discount = 10%

Manager = 30%

Admin = unlimited/configurable

============================================================
100. REFUNDS
============================================================

Support:

Full refund

Partial refund

Item refund

Payment refund

Reason

Approved by

Refund date

Reference number

Audit log.

============================================================
101. ORDER CANCELLATION
============================================================

Cancellation must require:

Reason

User

Timestamp

Optional manager approval

If KOT already sent:

record cancellation correctly.

Do not silently delete orders.

Use statuses.

============================================================
102. DATA STATUS SYSTEM
============================================================

Avoid permanent deletion for important financial data.

Use statuses such as:

active

inactive

cancelled

archived

deleted

closed

completed

============================================================
103. OFFLINE-READY ARCHITECTURE
============================================================

Design the frontend so POS can later support offline operation.

For the first version:

Implement graceful network error handling.

Architecture should allow future:

IndexedDB

offline queue

sync engine

Do not claim full offline support unless actually implemented.

============================================================
104. REAL-TIME
============================================================

Use Socket.IO for:

KOT

Kitchen

Order status

Table status

Notifications

Room service

When POS creates KOT:

Kitchen receives it immediately.

When kitchen marks ready:

POS can receive update.

============================================================
105. HOTEL + RESTAURANT INTEGRATION
============================================================

This is critical.

A hotel guest should be able to charge:

Restaurant

Room Service

Laundry

Minibar

Other services

to the room.

All should post to hotel folio.

Example:

Guest:

John

Room:

204

Restaurant bill:

₹1,250

Select:

Charge to Room

Then:

Folio:

Room charge ₹5,000

Restaurant ₹1,250

Total ₹6,250

============================================================
106. GUEST CHECKOUT
============================================================

At checkout:

Calculate:

Room charges

Restaurant charges

Room service

Laundry

Minibar

Other

Discount

Tax

Payments

Outstanding

Generate final hotel invoice.

============================================================
107. ROOM RESERVATION CALCULATION
============================================================

Support:

Nightly rate

Number of nights

Extra guest

Extra bed

Discount

Tax

Advance

Balance

Calculate server-side.

============================================================
108. HOUSEKEEPING
============================================================

After checkout:

Room:

Occupied

↓

Checkout

↓

Dirty

↓

Cleaning

↓

Inspected

↓

Available

Implement workflow.

============================================================
109. REPORT EXPORT
============================================================

Reports should support:

View

Filter

Date range

Outlet

Category

Payment mode

Export CSV

Print

PDF where practical.

Use server-side report generation where appropriate.

============================================================
110. SETTINGS
============================================================

Settings modules:

Company

Outlet

Tax

Invoice

POS

KOT

Kitchen

Hotel

Rooms

Payments

Printers

Notifications

Email

SMS

QR

Loyalty

Discounts

Users

Security

Backup

Integrations

============================================================
111. COMPANY SETTINGS
============================================================

Allow:

Logo

Business name

Legal name

Address

Phone

Email

GSTIN

PAN

Currency

Timezone

Invoice footer

Terms

============================================================
112. OUTLET SETTINGS
============================================================

Outlet:

Name

Address

GSTIN

Phone

Invoice prefix

KOT prefix

Default tax

Printer settings

Opening time

Closing time

============================================================
113. PRINTER ROUTING
============================================================

Example:

Pizza category

→ Kitchen Printer

Drinks

→ Beverage Printer

Desserts

→ Dessert Printer

Create configurable printer routing.

============================================================
114. EMAIL
============================================================

Nodemailer.

Environment:

SMTP_HOST

SMTP_PORT

SMTP_USER

SMTP_PASSWORD

MAIL_FROM

MAIL_TO

Use for:

Invoice email

Reservation confirmation

Hotel booking

Contact

Alerts

If SMTP unavailable, core POS must still work.

============================================================
115. ENVIRONMENT VARIABLES
============================================================

Backend:

PORT=5000

NODE_ENV=development

DB_HOST=localhost

DB_PORT=3306

DB_NAME=hotel_pos

DB_USER=root

DB_PASSWORD=

JWT_SECRET=

JWT_REFRESH_SECRET=

FRONTEND_URL=http://localhost:3000

UPLOAD_DIR=uploads

MAX_FILE_SIZE=10485760

SMTP_HOST=

SMTP_PORT=

SMTP_USER=

SMTP_PASSWORD=

MAIL_FROM=

MAIL_TO=

SITE_URL=http://localhost:3000

Frontend:

REACT_APP_API_URL=http://localhost:5000/api

REACT_APP_SOCKET_URL=http://localhost:5000

REACT_APP_SITE_URL=http://localhost:3000

IMPORTANT:

Because this is NOT Vite, NEVER use VITE_* variables.

Use Webpack EnvironmentPlugin or DefinePlugin.

============================================================
116. NPM PACKAGES
============================================================

Frontend core:

react

react-dom

react-router-dom

axios

webpack

webpack-cli

webpack-dev-server

babel-loader

@babel/core

@babel/preset-env

@babel/preset-react

html-webpack-plugin

css-loader

style-loader

mini-css-extract-plugin

css-minimizer-webpack-plugin

terser-webpack-plugin

react-loading-skeleton

react-helmet-async

lucide-react

Optional:

recharts

framer-motion

Use them only where genuinely necessary.

Backend:

express

mysql2

sequelize

dotenv

cors

helmet

express-rate-limit

express-validator

jsonwebtoken

bcrypt

cookie-parser

multer

sharp

nodemailer

winston

socket.io

uuid

slugify

compression

Do not install unnecessary packages.

============================================================
117. ROOT NPM SCRIPTS
============================================================

Create convenient scripts:

npm run install:all

npm run dev

npm run build

npm run backend

npm run frontend

npm run db:setup

npm run db:migrate

npm run db:seed

npm run create-admin

============================================================
118. ADMIN CREATION
============================================================

Create:

npm run create-admin

Prompt for:

Name

Email

Password

Company

Outlet

Role

Hash password.

Never hard-code admin credentials.

============================================================
119. DATABASE SEED
============================================================

Seed realistic demo data:

Company:

"SkyBlue Hospitality"

Outlet:

"SkyBlue Hotel & Restaurant"

Create:

Admin

Manager

Cashier

Waiter

Kitchen user

Receptionist

Menu categories

Menu items

Variations

Add-ons

Modifiers

Tables

Floors

Kitchen stations

Inventory

Recipes

Suppliers

Rooms

Room types

Sample guest

Sample reservation

Sample orders

Taxes

Settings

Use realistic data.

Do not use lorem ipsum.

============================================================
120. PUBLIC / CUSTOMER FEATURES
============================================================

The architecture should allow future customer-facing:

QR Menu

Online Ordering

Hotel Booking

Customer Login

Loyalty

But do not build fake integrations.

============================================================
121. AUDITABILITY
============================================================

Every important action should be traceable.

Audit:

Who

What

When

Where

Before

After

IP

User agent

============================================================
122. BACKUP
============================================================

Create backup settings and architecture.

Do not implement dangerous automatic database deletion.

Provide:

database backup documentation

mysqldump command

restore command

media backup guidance

============================================================
123. DOCUMENTATION
============================================================

Create:

README.md

docs/ARCHITECTURE.md

docs/DATABASE.md

docs/API.md

docs/POS-FLOW.md

docs/HOTEL-FLOW.md

docs/DEPLOYMENT.md

docs/PRINTING.md

docs/SECURITY.md

============================================================
124. CPANEL DEPLOYMENT
============================================================

Provide exact cPanel/CloudLinux instructions.

Explain:

Node application

Node version

Application root

Startup file

Environment variables

npm install

Database creation

phpMyAdmin import

Frontend build

Static frontend deployment

API deployment

Passenger

Uploads

Permissions

Restart

============================================================
125. VPS DEPLOYMENT
============================================================

Provide:

Ubuntu

Node.js

MySQL

Nginx

PM2

SSL

Firewall

Environment

Database

Uploads

Logs

Restart

============================================================
126. TESTING
============================================================

Create meaningful tests where practical.

Test:

Authentication

Authorization

Company isolation

Outlet isolation

Menu

POS

Order calculation

Tax

Discount

Payment

Split bill

Refund

KOT

Kitchen

Inventory

Recipe deduction

Purchase

Stock transfer

Hotel reservation

Check-in

Room charge

Restaurant charge to room

Folio

Checkout

Day end

Reports

Permissions

File uploads

============================================================
127. CRITICAL BUSINESS TEST
============================================================

Perform this complete scenario:

1. Login as cashier.
2. Select outlet.
3. Open POS.
4. Select Dine-In.
5. Select Table 5.
6. Add food item.
7. Add variation.
8. Add addon.
9. Add modifier.
10. Add note.
11. Submit KOT.
12. Verify kitchen receives KOT.
13. Kitchen accepts.
14. Kitchen starts.
15. Kitchen marks Ready.
16. Return to POS.
17. Generate bill.
18. Apply discount according to permission.
19. Calculate tax.
20. Split payment.
21. Print receipt.
22. Close order.
23. Verify inventory deduction.
24. Verify sales report.
25. Verify cash/payment report.

============================================================
128. CRITICAL HOTEL TEST
============================================================

Perform:

1. Create guest.
2. Create reservation.
3. Assign room.
4. Check in.
5. Post room charge.
6. Open restaurant POS.
7. Select Room Service.
8. Select guest room.
9. Add food.
10. Submit KOT.
11. Complete kitchen.
12. Deliver room service.
13. Charge to room.
14. Verify folio.
15. Add laundry charge.
16. Checkout.
17. Calculate final bill.
18. Collect payment.
19. Print final invoice.
20. Room becomes Dirty.
21. Housekeeping changes to Cleaning.
22. Housekeeping marks Inspected.
23. Room becomes Available.

============================================================
129. UI QUALITY TEST
============================================================

Check:

Desktop

Laptop

Tablet

Mobile

POS touch screen

Hotel reception

Kitchen screen

Admin

Make sure:

No horizontal overflow.

No broken layout.

No overlapping elements.

No unreadable text.

No inaccessible controls.

============================================================
130. SKELETON REQUIREMENT
============================================================

Install and ACTUALLY USE:

react-loading-skeleton

Do not create fake loading states.

Every API screen must show an appropriate skeleton.

POS should have fast loading placeholders.

Dashboard should have skeleton cards/charts.

Hotel room grid should have skeleton cards.

Tables should have skeleton rows.

============================================================
131. NO MOCK FUNCTIONALITY
============================================================

Do not create:

"Coming Soon"

"TODO"

"Fake API"

"Demo Only"

"Mock Data" in production code.

Seed data is allowed for initial database setup.

After API integration, frontend must load real database data.

============================================================
132. NO STATIC BILLING LOGIC
============================================================

Do not calculate authoritative bills only in frontend.

Frontend may preview.

Backend must calculate:

Subtotal

Discount

Tax

Grand Total

Payments

Balance

Refund

Room folio

Inventory deduction

============================================================
133. TRANSACTIONAL OPERATIONS
============================================================

Use DB transactions for:

Create order

Payment

Refund

Checkout

Room charge

Stock deduction

Purchase

Stock transfer

Recipe consumption

Day-end close

============================================================
134. CONCURRENCY
============================================================

Handle concurrent:

Order numbers

Invoice numbers

Payments

Stock deductions

Room bookings

Table assignment

Use database-safe operations.

============================================================
135. FRONTEND ROUTES
============================================================

Public:

/

 /login

 /pos

 /dashboard

 /tables

 /orders

 /menu

 /kitchen

 /inventory

 /purchases

 /customers

 /reservations

 /hotel

 /hotel/rooms

 /hotel/guests

 /hotel/checkin

 /hotel/checkout

 /hotel/folios

 /housekeeping

 /employees

 /expenses

 /reports

 /settings

============================================================
136. ADMIN / MANAGEMENT ROUTES
============================================================

/admin

/admin/company

/admin/outlets

/admin/users

/admin/roles

/admin/permissions

/admin/menu

/admin/categories

/admin/items

/admin/modifiers

/admin/addons

/admin/combos

/admin/taxes

/admin/discounts

/admin/coupons

/admin/tables

/admin/floors

/admin/kitchen-stations

/admin/inventory

/admin/recipes

/admin/suppliers

/admin/purchases

/admin/hotel/room-types

/admin/hotel/rooms

/admin/hotel/rates

/admin/printers

/admin/settings

/admin/audit-logs

============================================================
137. RESPONSIVE NAVIGATION
============================================================

Desktop:

Sidebar.

Tablet:

Collapsible sidebar.

Mobile:

Drawer.

POS:

Special mobile/tablet layout.

============================================================
138. SEARCH + FILTERS
============================================================

Implement reusable server-side filtering.

Examples:

Date range

Outlet

Category

Status

Payment

Customer

Employee

Room

Table

Supplier

============================================================
139. DATE / TIME
============================================================

Company/outlet timezone must be configurable.

Do not assume UTC-only display.

Store timestamps consistently.

Display local outlet timezone.

============================================================
140. NUMBER / CURRENCY
============================================================

Use configurable currency.

Default:

INR ₹

Format:

₹1,250.00

Use Intl.NumberFormat for display.

Authoritative calculations remain server-side using decimal-safe methods.

============================================================
141. HOTEL OCCUPANCY
============================================================

Calculate:

Total rooms

Available

Occupied

Reserved

Cleaning

Maintenance

Occupancy percentage

Do not count blocked/maintenance rooms incorrectly.

============================================================
142. RESTAURANT TABLE OCCUPANCY
============================================================

Calculate:

Available tables

Occupied

Reserved

Cleaning

Blocked

============================================================
143. INVENTORY AUTOMATION
============================================================

When item is sold:

If recipe exists:

Deduct recipe ingredients.

If inventory item itself is sold:

Deduct direct stock.

Record inventory transaction.

Never silently change stock.

============================================================
144. INVENTORY TRANSACTION TYPES
============================================================

purchase

sale

consumption

wastage

adjustment

transfer_out

transfer_in

return

opening_stock

closing_adjustment

============================================================
145. REPORT DATE FILTER
============================================================

Every report should support:

Today

Yesterday

This Week

This Month

Last Month

This Year

Custom Range

============================================================
146. PRINT PREVIEW
============================================================

Before printing:

Show preview.

Allow:

Print

Cancel

============================================================
147. UI ICONS
============================================================

Use lucide-react for icons.

Do not use a UI framework.

Use consistent icon sizes.

============================================================
148. TYPOGRAPHY
============================================================

Use a professional modern sans-serif font.

Prefer system font stack to avoid unnecessary external dependency:

font-family:

Inter,
ui-sans-serif,
system-ui,
-apple-system,
BlinkMacSystemFont,
"Segoe UI",
sans-serif;

============================================================
149. BUTTON DESIGN
============================================================

Primary:

Sky blue.

Secondary:

White with blue border.

Danger:

Red.

Success:

Green.

Buttons should have:

Hover

Focus

Active

Disabled

Loading

states.

============================================================
150. FORMS
============================================================

Use:

React Hook Form

Zod

or equivalent.

All forms:

Client validation

Server validation

Error display

Loading state

Success state

Reset where appropriate

============================================================
151. DATA TABLES
============================================================

Build your own reusable DataTable using React + HTML + CSS.

Features:

Search

Sort

Pagination

Column visibility where useful

Row actions

Status

Loading skeleton

Empty state

Responsive mobile layout

Do not use DataGrid UI framework.

============================================================
152. MODALS
============================================================

Build reusable modal:

Header

Body

Footer

Close

Escape

Backdrop

Focus handling

Responsive

============================================================
153. NOTIFICATION SYSTEM
============================================================

Create toast notification system.

Examples:

Success

Error

Warning

Info

Do not use browser alert.

============================================================
154. ERROR BOUNDARY
============================================================

Implement React Error Boundary.

If a component crashes:

Show:

Something went wrong.

Try Again.

============================================================
155. SECURITY OF GUEST DOCUMENTS
============================================================

Hotel guest ID documents are sensitive.

Do not serve them through unrestricted public URLs.

Use authenticated API access.

Authorize access.

Do not expose document filenames publicly.

============================================================
156. DATA PRIVACY
============================================================

Do not expose:

Guest IDs

private documents

passwords

internal notes

financial credentials

through public APIs.

============================================================
157. API RATE LIMITS
============================================================

Apply reasonable rate limits to:

Login

Contact

Public order APIs

Password changes

File uploads

============================================================
158. FINAL PACKAGE CHECK
============================================================

Before completion inspect package.json.

Ensure none of these exists:

next

vite

tailwindcss

bootstrap

@mui

antd

chakra

styled-components

emotion

shadcn

daisyui

flowbite

The frontend must be:

React

Webpack

Babel

HTML

CSS

JavaScript

============================================================
159. PHASED IMPLEMENTATION
============================================================

You MUST build this in phases.

Do not skip phases.

PHASE 1:
Project architecture

PHASE 2:
Webpack + Babel React setup

PHASE 3:
CSS design system

PHASE 4:
MySQL database schema

PHASE 5:
Sequelize models/migrations/relations

PHASE 6:
Seed data

PHASE 7:
Express API foundation

PHASE 8:
Authentication

PHASE 9:
Company/outlet/user/role/permission system

PHASE 10:
Dashboard

PHASE 11:
Menu management

PHASE 12:
Tables/floors

PHASE 13:
POS

PHASE 14:
Orders

PHASE 15:
Payments

PHASE 16:
Billing/printing

PHASE 17:
KOT

PHASE 18:
Kitchen Display System

PHASE 19:
Socket.IO real-time

PHASE 20:
Inventory

PHASE 21:
Recipes

PHASE 22:
Purchase

PHASE 23:
Suppliers

PHASE 24:
Customers/CRM

PHASE 25:
Loyalty

PHASE 26:
Discount/coupon

PHASE 27:
Restaurant reservations

PHASE 28:
Hotel rooms

PHASE 29:
Hotel reservations

PHASE 30:
Hotel guest management

PHASE 31:
Check-in

PHASE 32:
Hotel folio

PHASE 33:
Room service

PHASE 34:
Restaurant charge to room

PHASE 35:
Hotel checkout

PHASE 36:
Housekeeping

PHASE 37:
Cash register

PHASE 38:
Day end

PHASE 39:
Expenses

PHASE 40:
Employees

PHASE 41:
Reports

PHASE 42:
Multi-outlet

PHASE 43:
Central kitchen

PHASE 44:
QR menu

PHASE 45:
Online order architecture

PHASE 46:
Printer management

PHASE 47:
Media/uploads

PHASE 48:
Notifications

PHASE 49:
Audit logs

PHASE 50:
Settings

PHASE 51:
Skeleton loaders

PHASE 52:
Responsive design

PHASE 53:
Accessibility

PHASE 54:
Performance

PHASE 55:
Security review

PHASE 56:
Testing

PHASE 57:
Production build

PHASE 58:
Deployment documentation

============================================================
160. IMPORTANT CLAUDE WORKFLOW
============================================================

You are operating inside the project directory.

FIRST inspect the existing files.

If the directory is empty:

Create everything.

If existing code exists:

Analyze it before modifying.

Do not blindly delete existing functionality.

After each major phase:

Run relevant tests/build.

Fix errors before continuing.

Do not accumulate known errors.

============================================================
161. DO NOT STOP AFTER PLAN
============================================================

Do not only give me architecture.

Do not only give me SQL.

Do not only give me UI.

Actually implement the application.

Create files.

Install dependencies.

Run commands.

Test.

Fix.

Continue.

============================================================
162. DO NOT ASK NORMAL IMPLEMENTATION QUESTIONS
============================================================

Do not repeatedly ask:

"Should I continue?"

"Should I use this component?"

"Should I create this table?"

"Should I implement this?"

For normal engineering decisions:

Choose the most professional practical solution and continue.

Only ask me if absolutely necessary information cannot be inferred.

============================================================
163. FINAL ACCEPTANCE TEST
============================================================

Before saying COMPLETE, verify:

DATABASE:

- schema works
- migrations work
- seed works
- relationships work

AUTH:

- login
- logout
- password hashing
- permissions
- outlet isolation

POS:

- new order
- dine-in
- takeaway
- delivery
- room service
- customer
- table
- items
- variation
- addon
- modifier
- discount
- tax
- KOT
- payment
- split payment
- refund
- print

KITCHEN:

- KOT
- real-time
- status updates
- station routing

INVENTORY:

- stock
- purchase
- recipe
- consumption
- wastage
- transfer
- low stock

HOTEL:

- reservation
- room
- guest
- check-in
- folio
- restaurant charge
- room service
- checkout
- housekeeping

REPORTS:

- sales
- payments
- inventory
- purchase
- GST
- KOT
- hotel occupancy
- revenue
- day end

UI:

- desktop
- laptop
- tablet
- mobile
- POS touch screen
- skeleton loading
- errors
- empty states
- responsive navigation
- dark mode

BUILD:

npm run build

must succeed.

============================================================
164. FINAL SECURITY REVIEW
============================================================

Check:

No hardcoded passwords.

No exposed secrets.

No SQL injection.

No unrestricted guest documents.

No unrestricted admin endpoints.

No missing authorization.

No public access to private hotel data.

No unsafe file upload.

No stack traces in production.

============================================================
165. FINAL OUTPUT
============================================================

At the end provide:

1. Complete implementation summary.

2. Technology stack.

3. Database tables.

4. API modules.

5. Frontend modules.

6. Admin modules.

7. POS modules.

8. Hotel modules.

9. Restaurant modules.

10. Kitchen modules.

11. Inventory modules.

12. Reports.

13. Exact commands to run.

14. Exact database setup commands.

15. Admin creation command.

16. Environment variables.

17. Production build command.

18. cPanel deployment.

19. VPS deployment.

20. Testing performed.

21. Known remaining issues.

Only mention genuine remaining issues.

============================================================
166. START NOW
============================================================

START IMPLEMENTATION NOW.

Inspect the current directory first.

Then build the system phase by phase.

Do not just write a plan.

Do not stop after creating the database.

Do not stop after creating the UI.

Do not create mock functionality.

Do not use Vite.

Do not use Next.js.

Do not use Tailwind.

Do not use Bootstrap.

Do not use Material UI.

Do not use any UI framework.

The final application must use:

REACT
+
JSX
+
HTML5
+
PURE CSS3
+
WEBPACK
+
BABEL
+
NODE.JS
+
EXPRESS
+
MYSQL

The visual identity must be:

SKY BLUE + WHITE

The application must feel like a professional enterprise Hotel + Restaurant POS system.

Build it completely.